Users of an enterprise business software system expect the system to provide for them a rich set of functionality. For example, a finance system is expected to prepare paychecks, prepare tax returns, create end of the year reports, etc. A personnel system is expected to prepare reports of personnel sorted or categorized in various ways, to process the hiring of employees, etc. In addition to the functionality built into the enterprise business software, users expect the software to be extensible and modifiable. Many typical business processes differ significantly in their details from company to company, and the enterprise software needs to be modified by the user to meet his company's needs. A given user therefore typically desires functionality that is not built into the enterprise software system. Additionally, users also typically desire to add custom reporting capabilities to support their day-to-day information gathering and decision making needs.
An enterprise business software user designing a custom report is confronted with a wide selection of data objects (e.g., employees, contractors, suppliers), data fields (e.g., age, salary, manager, etc.), and means of filtering the data. Because systems with many kinds of data objects and data fields often have difficulty uniquely identifying the data objects and data fields to a user, users unfamiliar with the specific terminology of the enterprise software system for different data objects and fields will likely have a difficult time creating their desired reports.